+1999-11-04 Michael Fulbright <drmike@redhat.com>
+
+ * src/io-jpeg.c (image_begin_load): Add update_func callback.
+ * src/io-jpeg.c (image_load_increment): Call updated callback when
+ new graphic data decoded.
+
1999-11-04 Jonathan Blandford <jrb@redhat.com>
* src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_update): handle the
* src/Makefile.am (libpixbuf_gif_la_LIBADD): Remove dependency on
lib*gif!!!!
-1999-11-03 Michael Fulbright <msf@redhat.com>
+1999-11-03 Michael Fulbright <drmike@redhat.com>
* src/io-jpeg.c (image_load_increment): Further removal of
bugginess in local buffering code. Handles grayscale jpegs
function.
(gdk_pixbuf_loader_write): Use size_t for count.
-1999-10-27 Michael Fulbright <msf@avatar.labs.redhat.com>
+1999-10-27 Michael Fulbright <drmike@redhat.com>
* src/gdk-pixbuf-loader.c (gdk_pixbuf_loader_destroy): Fixed
logic so we only try to close loader if it wasn't previously closed.
-1999-10-27 Michael Fulbright <msf@redhat.com>
+1999-10-27 Michael Fulbright <drmike@redhat.com>
* src/gdk-pixbuf-loader.c: Made sure image_loader struct member of
pixbuf_loader properly initialized.
/* progressive loader context */
typedef struct {
- ModulePreparedNotifyFunc notify_func;
- gpointer notify_user_data;
-
+ ModuleUpdatedNotifyFunc updated_func;
+ ModulePreparedNotifyFunc prepared_func;
+ gpointer user_data;
+
GdkPixbuf *pixbuf;
guchar *dptr; /* current position in pixbuf */
} JpegProgContext;
GdkPixbuf *image_load (FILE *f);
-gpointer image_begin_load (ModulePreparedNotifyFunc func, gpointer user_data);
+gpointer image_begin_load (ModulePreparedNotifyFunc func,
+ ModuleUpdatedNotifyFunc func2, gpointer user_data);
void image_stop_load (gpointer context);
gboolean image_load_increment(gpointer context, guchar *buf, guint size);
int w, h, i;
guchar *pixels = NULL;
guchar *dptr;
- guchar *lines[4]; /* Used to expand rows, via rec_outbuf_height, from the header file:
- * "* Usually rec_outbuf_height will be 1 or 2, at most 4."
+ guchar *lines[4]; /* Used to expand rows, via rec_outbuf_height,
+ * from the header file:
+ * " Usually rec_outbuf_height will be 1 or 2,
+ * at most 4."
*/
guchar **lptr;
struct jpeg_decompress_struct cinfo;
*/
gpointer
-image_begin_load (ModulePreparedNotifyFunc func, gpointer user_data)
+image_begin_load (ModulePreparedNotifyFunc prepared_func,
+ ModuleUpdatedNotifyFunc updated_func,
+ gpointer user_data)
{
JpegProgContext *context;
my_source_mgr *src;
context = g_new0 (JpegProgContext, 1);
- context->notify_func = func;
- context->notify_user_data = user_data;
+ context->prepared_func = prepared_func;
+ context->updated_func = updated_func;
+ context->user_data = user_data;
context->pixbuf = NULL;
context->got_header = FALSE;
context->did_prescan = FALSE;
context->dptr = context->pixbuf->art_pixbuf->pixels;
/* Notify the client that we are ready to go */
-
- if (context->notify_func)
- (* context->notify_func) (context->pixbuf,
- context->notify_user_data);
+ (* context->prepared_func) (context->pixbuf,
+ context->user_data);
} else if (!context->did_prescan) {
int rc;
context->dptr += nlines * context->pixbuf->art_pixbuf->rowstride;
+ /* send updated signal */
+ (* context->updated_func) (context->pixbuf,
+ context->user_data,
+ 0,
+ cinfo->output_scanline-1,
+ cinfo->image_width,
+ nlines);
+
#undef DEBUG_JPEG_PROGRESSIVE
#ifdef DEBUG_JPEG_PROGRESSIVE